package demo.day04;

/**
 * @Auther: hjy(lc))
 * @Date: 2022/7/20-07-20-10:21
 * @Description：demo.day04  位运算符
 */
public class op_test {
    public static void main(String[] args) {
        //对二进制每一位操作
        //&(与) |(或) ^(异或) ~(取反)
        //&  左右两边都为1
        //1   0000 0001
        //3   0000 0011
        System.out.println(1&3);   //1
        //|  至少有一个为1
        System.out.println(1|3);   //3
        //^ 左右两边相同为0，不同为1.  1^1=0,1^0=1,0^1=1,0^0=0
        System.out.println(1^3);   //2
        //~ 0-1 1-0 取反   -1  11111111111111111111111111111111111111111
        //00000000 00000000 00000000 00000101  补码
        //11111111 11111111 11111111 11111010  补码 （负数 -> 真值 ）
        //10000000 00000000 00000000 00000110   -6
        System.out.println(~5);    //-6
        System.out.println(~(-1));  //0
    }
}
